package main

import (
	"container/list"
	"fmt"
	"log"
)

func main() {
	//testArr()
	//testList()
	//syncMap()
	log.Println(typeVal("ruixule"))
}

//判断 数据结构
func typeVal(i interface{}) string {
	switch i.(type) {
	case int:
		return "int"
	case int64:
		return "int64"
	case string:
		return "tyepe is string"
	default:
		return "no march"
	}
}

func testList() {
	l := list.New()
	//在前插入第一元素是ruixule
	e := l.PushFront("ruixule")
	//在第一个元素后面添加一个23
	e1 := l.InsertAfter(23, e)
	//在值为23元素后面添加一个值为24的元素
	l.InsertAfter(24, e1)
	//在第一个元素前面添加一个first
	l.InsertBefore("first", e)
	//在尾部添加一个元素 last
	el := l.PushBack("last")
	//在最后一个元素之前添加一个元素
	l.InsertBefore("last-pre", el)
	for i := l.Front(); i != nil; i = i.Next() {
		log.Println(i.Value)
	}
	/**
	可以尝试
	  PushBackList(other *List)	添加 other 列表元素到尾部
	  PushFrontList(other *List)	添加 other 列表元素到头部
	*/
}
func testArr() {
	arr := [5]int{1, 34, 5, 67, 89}
	c := arraySort(arr)
	for v := range c {
		d := v
		fmt.Printf("reve value=%d,len=%d \n", d, cap(c))
	}
}
func arraySort(arrry [5]int) chan int {
	c := make(chan int)
	go func() {
		for i, v := range arrry {
			c <- v
			fmt.Printf("send index=%d,value=%d,len=%d \n", i, v, cap(c))
		}
		close(c)
	}()
	return c
}

func testRune() {
	s := "ruixule芮旭乐!"
	log.Println(s)
	for _, v := range []byte(s) { //UTF-8编码
		log.Printf("%X \n", v)
	}
	for i, v := range s {
		log.Printf("%d , %X \n", i, v)
	}
}
